import java.util.ArrayList;

public class TeamMem implements TeamMember {

	private String TeamName = "None";
	private String Position;
	private String FirstName;
	private String LastName;
	private int Points = 0;
	private int totalPoints = 0;
	private int Moves = 0;
	// projected points for the week
	private int projectedPoints = 0;
	
	// Passing yards for the week
	private int passYards = 0;
	// Passing yards total
	private int totalPassYards = 0;
	
	//Pass TDs for the week
	private int passTDs = 0;
	//Total pass TDs
	private int totalPassTDs = 0;
	
	//Interceptions for the week
	private int weekInts = 0;
	//Total interceptions for the season
	private int seasonInts = 0;
	
	//rush yards for the week
	private int rushingYards = 0;
	//Total rush yards for the season
	private int seasonRushYards = 0;
	
	//Rush yards for the week
	private int rushTDs = 0;
	//Total rush TDs for the season
	private int totalRushTDs = 0;
	
	//Receiving yards for the week
	private int receivingYards = 0;
	//Total receiving yards for the season
	private int seasonReceiving = 0;
	
	//Receiving TDs for the week
	private int receivingTDs = 0;
	//Total receiving TDs for the season
	private int totalReceivingTDs = 0;
	
	//Return TDs for the week
	private int returnTDs = 0;
	//Total Return TDs for the season
	private int totalReturnTDs = 0;
	
	//Fumble returns for a touchdown for the week
	private int fumbleReturnTDs = 0;
	//Total fumble return for touchdowns for the season
	private int totalFumbleTDs = 0;
	
	// Default Constructor
	public TeamMem() {

	}

	// constructor with pass-in value
	public TeamMem(String Fname, String Lname, String Tname, String Pos) {
		FirstName = Fname;
		LastName = Lname;
		TeamName = Tname;
		Position = Pos;

	}

	public void SetFirstName(String Fname) {
		FirstName = Fname;
	}

	public void SetLastName(String Lname) {
		LastName = Lname;
	}

	public void SetTeamName(String Tname) {
		TeamName = Tname;
	}

	public void SetPosition(String Pos) {
		Position = Pos;
	}

	// Get Methods
	public String GetTeamName() {
		return TeamName;
	}

	public String GetPosition() {
		return Position;
	}

	public String GetFirstName() {
		return FirstName;
	}

	public String GetLastName() {
		return LastName;
	}

	public int GetPoints() {
		return Points;
	}
	
	public int GetTotalPoints() {
		return this.totalPoints;
	}

	public int GetMoves() {
		return Moves;
	}

	// Input Points and moves.
	public void InputPoints(int p) {
		Points += p;
	}

	public void InputMoves(int m) {
		Moves += m;
	}
	
	// Sets the projected points for the player for the week
	public void setProjectedPoints(int projected) {
		this.projectedPoints = projected;
	}
	
	// Returns the projected points
	public float getProjectedPoints() {
		return this.projectedPoints;
	}
	//Returns this weeks pass yards
	public int getPassYards() {
		return this.passYards;
	}
	//Sets this weeks pass yards
	public void setPassYards(int newPass) {
		this.passYards = newPass;
	}
	//Returns total pass yards
	public int getTotalPassYards() {
		return this.totalPassYards;
	}
	//Sets seasons pass yards
	public void setTotalPassYards(int newPass) {
		this.totalPassYards = newPass;
	}
	//Returns this weeks rush yards
	public int getRushYards() {
		return this.rushingYards;
	}
	//Sets this weeks rush yards
	public void setRushYards(int newRush) {
		this.rushingYards = newRush;
	}
	//Returns this weeks pass TDs
	public int getPassTDs() {
		return this.passTDs;
	}
	//Sets this weeks pass TDs
	public void setPassTDs(int newPassTD) {
		this.passTDs = newPassTD;
	}
	//Returns total pass tds
	public int getTotalPassTDs() {
		return this.totalPassTDs;
	}
	//Sets total pass TDs
	public void setTotalPassTDs(int newPassTD) {
		this.totalPassTDs = newPassTD;
	}
	//Returns total rush yards
	public int getTotalRushYards() {
		return this.seasonRushYards;
	}
	//Sets seasons rush yards
	public void setTotalRushYards(int newRush) {
		this.seasonRushYards = newRush;
	}
	//Returns this weeks rush TDs
	public int getRushTDs() {
		return this.rushTDs;
	}
	//Sets this weeks rush TDs
	public void setRushTDs(int newRushTD) {
		this.rushTDs = newRushTD;
	}
	//Returns total rush TDs
	public int getTotalRushTDs() {
		return this.totalRushTDs;
	}
	//Sets season rush TDs
	public void setTotalRushTDs(int newRushTds) {
		this.totalRushTDs = newRushTds;
	}
	//Returns this weeks receiving yards
	public int getReceivingYards() {
		return this.receivingYards;
	}
	//Sets this weeks receiving yards
	public void setReceivingYards(int newReceiving) {
		this.receivingYards = newReceiving;
	}
	//Returns total receiving yards
	public int getTotalReceivingYards() {
		return this.seasonReceiving;
	}
	//Sets season receiving yards
	public void setTotalReceivingYards(int newReceiving) {
		this.seasonReceiving = newReceiving;
	}
	//returns this weeks receiving touchdowns
	public int getReceivingTDs() {
		return this.receivingTDs;
	}
	//Sets this weeks receiving TDs
	public void setReceivingTDs(int newReceivingTD) {
		this.receivingTDs = newReceivingTD;
	}
	//returns total receiving TDs
	public int getTotalReceivingTDs() {
		return this.totalReceivingTDs;
	}
	//Sets season receiving TDs
	public void setTotalReceivingTDs(int newReceivingTD) {
		this.totalReceivingTDs = newReceivingTD;
	}
	//Returns this week's returned(punt or kickoff) TDs
	public int getReturnTDs() {
		return this.returnTDs;
	}
	//Sets this weeks return TDs
	public void setReturnTDs(int newReturn) {
		this.returnTDs = newReturn;
	}
	//Returns total returned(punt or kickoff) TDs
	public int getTotalReturnTDs() {
		return this.totalReturnTDs;
	}
	//Sets season return TDs
	public void setTotalReturnTDs(int newReturn) {
		this.totalReturnTDs = newReturn;
	}
	//Returns this weeks fumble recovery TDs
	public int getFumbleTDs() {
		return this.fumbleReturnTDs;
	}
	//Sets this weeks fumble recovery TDs
	public void setFumbleTDs(int newFumble) {
		this.fumbleReturnTDs = newFumble;
	}
	//Returns total fumble recovery TDs
	public int getTotalFumbleTDs() {
		return this.totalFumbleTDs;
	}
	//Sets season fumble returns for TDs
	public void setTotalFumbleTDs(int newFumble) {
		this.totalFumbleTDs = newFumble;
	}
	
	//Set week interceptions
	public void setWeekInts(int newInts) {
		this.weekInts = newInts;
	}
	
	//Returns week interceptions
	public int getWeekInts() {
		return this.weekInts;
	}
	
	//Set season interceptions
	public void setSeasonInts(int newInts) {
		this.seasonInts = newInts;
	}
	
	//Returns Season Interceptions
	public int getTotalInts() {
		return this.seasonInts;
	}
	
	//Returns an ArrayList with all the specified values of this week's stats
	public ArrayList<String> statisticsForCurrentWeek() {
		ArrayList<String> stats = new ArrayList();
		stats.add(Integer.toString(this.Points));
		stats.add(Integer.toString(this.projectedPoints));
		stats.add(Integer.toString(this.passYards));
		stats.add(Integer.toString(this.passTDs));
		stats.add(Integer.toString(this.rushingYards));
		stats.add(Integer.toString(this.rushTDs));
		stats.add(Integer.toString(this.receivingYards));
		stats.add(Integer.toString(this.receivingTDs));
		stats.add(Integer.toString(returnTDs));
		stats.add(Integer.toString(fumbleReturnTDs));
		stats.add(Integer.toString(weekInts));
		
		return stats;
	}
	
	//Returns an ArrayList with all the specified values of season stats
	public ArrayList<String> statisticsForSeason() {
		ArrayList<String> stats = new ArrayList();
		stats.add(Integer.toString(this.totalPoints));
		stats.add(Integer.toString(this.totalPassYards));
		stats.add(Integer.toString(this.totalPassTDs));
		stats.add(Integer.toString(this.seasonRushYards));
		stats.add(Integer.toString(this.totalRushTDs));
		stats.add(Integer.toString(this.seasonReceiving));
		stats.add(Integer.toString(this.totalReceivingTDs));
		stats.add(Integer.toString(totalReturnTDs));
		stats.add(Integer.toString(totalFumbleTDs));
		stats.add(Integer.toString(seasonInts));
		
		return stats;
	}
	
}
